package cn.com.blueInfo.bpm.system.request;

import cn.com.blueInfo.bpm.common.request.BaseDTO;
import cn.com.blueInfo.bpm.common.request.BaseQueryDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;

/**
 * 租户定义表 接收参数机校验
 * @author suxch
 * @since 2025-08-24 01:37:55
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "租户定义 接收参数及校验")
public class TenantDTO extends BaseDTO {

    /** 租户编码 */
    @NotBlank(message = "租户编码 不能为空")
    @Schema(description = "租户编码")
    private String tenantCode;
    /** 租户名称 */
    @NotBlank(message = "租户名称 不能为空")
    @Schema(description = "租户名称")
    private String tenantName;
    /** 租户联系人 */
    @NotBlank(message = "租户联系人 不能为空")
    @Schema(description = "租户联系人")
    private String contactUser;
    /** 联系人电话 */
    @NotBlank(message = "联系人电话 不能为空")
    @Schema(description = "联系人电话")
    private String contactMobile;
    /** 创建人ID，仅平台超管可操作 */
    @Schema(description = "创建人ID，仅平台超管可操作")
    private Long createUserId;

    /**
     * 租户定义 接收分页查询参数
     * @author suxch
     * @since 2025-08-21 05:08:55
     */
    @Data
    @EqualsAndHashCode(callSuper = true)
    @Schema(description = "租户定义 接收分页查询参数")
    public static class QueryDTO extends BaseQueryDTO {

        /** 租户编码 */
        @Schema(description = "租户编码")
        private String tenantCode;
        /** 租户名称 */
        @Schema(description = "租户名称")
        private String tenantName;
        /** 租户联系人 */
        @Schema(description = "租户联系人")
        private String contactUser;
        /** 联系人电话 */
        @Schema(description = "联系人电话")
        private String contactMobile;

    }

    /**
     * 租户定义 接收部分更新参数及校验
     * @author suxch
     * @since 2025-08-21 05:08:55
     */
    @Data
    @EqualsAndHashCode(callSuper = true)
    @Schema(description = "租户定义 接收部分更新参数及校验")
    public static class UpdatePartialDTO extends BaseDTO {

        /** 创建人ID，仅平台超管可操作 */
        @Schema(description = "创建人ID，仅平台超管可操作")
        private Long createUserId;

    }

}